home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 May: Tool Chest / Developer CD Series Tool Chest (Apple Computer)(May 1999).iso / Tool Chest / Games / Game Sample Code / ZAM 1.0a13 / CoreSource / MenuDispatch.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-16  |  1.4 KB  |  86 lines  |  [TEXT/KAHL]

  1. /*
  2.     9-30-92  • Brigham Stevens
  3.     --------------------------
  4.     Menu.c        This handles Menu command dispatching 
  5.     
  6.     This is a bare minimum menu initializer and dispatcher.
  7.     Menus are initialized from an MBAR resource id 128.  To add new menus
  8.     you must change this resource.
  9.  
  10. */
  11.  
  12. #include "CoreGlobals.h"
  13. #include "EventLoop.h"
  14. #include "MenuDispatch.h"
  15.  
  16.  
  17. void BuildMenuBars(void)
  18. {
  19.     Handle mbar;
  20.     
  21.     mbar=GetNewMBar(128);
  22.     if(mbar) {
  23.         SetMenuBar(mbar);
  24.         AddResMenu(GetMHandle(APPLE_MENU),'DRVR');
  25.         DrawMenuBar();
  26.     } else {
  27.         ErrMsg("\pMenubar resouce not loaded.  Program will abort.");
  28.         ExitToShell();
  29.     }
  30. }
  31.  
  32. void RunDeskAccesory(short item)
  33. {
  34.     GrafPtr        savePort;
  35.     Str255        daName;
  36.     
  37.     GetPort(&savePort);
  38.     GetItem(GetMHandle(APPLE_MENU), item, &daName);
  39.     (void) OpenDeskAcc(&daName);
  40.     SetPort(savePort);
  41. }
  42.  
  43. void ChooseApple(short itemNumber)
  44. {
  45.     short item;
  46.     
  47.     if(itemNumber == APPLE_ABOUT) {
  48.         item = Alert(rAboutBoxID,nil);
  49.     } else {
  50.         RunDeskAccesory(itemNumber);
  51.     }
  52. }
  53.  
  54. void ChooseFile(short item)
  55. {
  56.  
  57.     WindowPtr        fWindow;
  58.     
  59.     fWindow = FrontWindow();
  60.     
  61.     switch(item) {
  62.         case FILE_NEW    :    NewGameWindow();
  63.         break;
  64.         case FILE_QUIT    :    gDone = true;
  65.         break;
  66.         default:            
  67.         break;
  68.     }
  69. }
  70.  
  71.  
  72. void MenuDispatch(short menuNumber,short itemNumber)
  73. {
  74.     if(menuNumber != 0)
  75.         switch(menuNumber) {
  76.             case APPLE_MENU :     ChooseApple(itemNumber);
  77.             break;
  78.             case FILE_MENU :    ChooseFile(itemNumber);
  79.             break;
  80.             case EDIT_MENU :
  81.             break;
  82.             default :            
  83.             break;
  84.         }
  85. }
  86.